package com.wasion.core.task;

import android.os.AsyncTask;

/**
 * 
 * @ClassName: Task
 * @Description: 异步任务类 , 可以直接继承AsyncTask, 在类中实现异步操作, 并提供接口反馈当前异步执行的程度
 *               (可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程
 * @author 高意
 * @date 2014年7月23日 下午4:36:05
 * 
 */
public class Task extends AsyncTask<TaskItem, Integer, TaskItem> {

	public Task() {
		super();
	}

	@Override
	protected TaskItem doInBackground(TaskItem... items) {
		TaskItem item = items[0];
		if (item.listener != null) {
			item.listener.get();
		}
		return item;
	}

	@Override
	protected void onCancelled() {
		super.onCancelled();
	}

	@Override
	protected void onPostExecute(TaskItem item) {
		if (item.listener != null) {
			item.listener.update();
		}
	}

	@Override
	protected void onPreExecute() {
		super.onPreExecute();
	}

	@Override
	protected void onProgressUpdate(Integer... values) {
		super.onProgressUpdate(values);
	}

}
